const express = require('express');
const app = express();
const port = 3000;

// 使用内置中间件解析 JSON 请求体
app.use(express.json());

// 日志中间件
app.use((req, res, next) => {
  console.log(`${req.method} 请求: ${req.url}`);
  next();  // 将请求传递给下一个中间件或路由
});

// 路由: 根路径，返回简单消息
app.get('/', (req, res) => {
  res.send('欢迎来到 Express 应用!');
});

// 路由: 获取用户信息，:id 是动态参数
app.get('/user/:id', (req, res) => {
  const userId = req.params.id;
  // 假设从数据库中查找用户
  const user = { id: userId, name: 'John Doe' };
  res.json(user);  // 返回 JSON 响应
});

// 路由: 提交表单数据
app.post('/submit', (req, res) => {
  const formData = req.body;  // 获取 POST 请求体中的数据
  console.log('表单数据:', formData);
  res.send('表单提交成功!');
});

// 错误处理中间件
app.use((err, req, res, next) => {
  console.error(err.stack);
  res.status(500).send('服务器内部错误!');
});

// 启动服务器
app.listen(port, () => {
  console.log(`服务器正在 http://localhost:${port} 上运行`);
});

